(globalThis.TURBOPACK || (globalThis.TURBOPACK = [])).push([typeof document === "object" ? document.currentScript : undefined, "[turbopack]/browser/dev/hmr-client/hmr-client.ts [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; /// /// /// /// __turbopack_context__.s([ "connect", ()=>connect, "setHooks", ()=>setHooks, "subscribeToUpdate", ()=>subscribeToUpdate ]); function connect(param) { let { addMessageListener, sendMessage, onUpdateError = console.error } = param; addMessageListener((msg)=>{ switch(msg.type){ case 'turbopack-connected': handleSocketConnected(sendMessage); break; default: try { if (Array.isArray(msg.data)) { for(let i = 0; i < msg.data.length; i++){ handleSocketMessage(msg.data[i]); } } else { handleSocketMessage(msg.data); } applyAggregatedUpdates(); } catch (e) { console.warn('[Fast Refresh] performing full reload\n\n' + "Fast Refresh will perform a full reload when you edit a file that's imported by modules outside of the React rendering tree.\n" + 'You might have a file which exports a React component but also exports a value that is imported by a non-React component file.\n' + 'Consider migrating the non-React component export to a separate file and importing it into both files.\n\n' + 'It is also possible the parent component of the component you edited is a class component, which disables Fast Refresh.\n' + 'Fast Refresh requires at least one parent function component in your React tree.'); onUpdateError(e); location.reload(); } break; } }); const queued = globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS; if (queued != null && !Array.isArray(queued)) { throw new Error('A separate HMR handler was already registered'); } globalThis.TURBOPACK_CHUNK_UPDATE_LISTENERS = { push: (param)=>{ let [chunkPath, callback] = param; subscribeToChunkUpdate(chunkPath, sendMessage, callback); } }; if (Array.isArray(queued)) { for (const [chunkPath, callback] of queued){ subscribeToChunkUpdate(chunkPath, sendMessage, callback); } } } const updateCallbackSets = new Map(); function sendJSON(sendMessage, message) { sendMessage(JSON.stringify(message)); } function resourceKey(resource) { return JSON.stringify({ path: resource.path, headers: resource.headers || null }); } function subscribeToUpdates(sendMessage, resource) { sendJSON(sendMessage, { type: 'turbopack-subscribe', ...resource }); return ()=>{ sendJSON(sendMessage, { type: 'turbopack-unsubscribe', ...resource }); }; } function handleSocketConnected(sendMessage) { for (const key of updateCallbackSets.keys()){ subscribeToUpdates(sendMessage, JSON.parse(key)); } } // we aggregate all pending updates until the issues are resolved const chunkListsWithPendingUpdates = new Map(); function aggregateUpdates(msg) { const key = resourceKey(msg.resource); let aggregated = chunkListsWithPendingUpdates.get(key); if (aggregated) { aggregated.instruction = mergeChunkListUpdates(aggregated.instruction, msg.instruction); } else { chunkListsWithPendingUpdates.set(key, msg); } } function applyAggregatedUpdates() { if (chunkListsWithPendingUpdates.size === 0) return; hooks.beforeRefresh(); for (const msg of chunkListsWithPendingUpdates.values()){ triggerUpdate(msg); } chunkListsWithPendingUpdates.clear(); finalizeUpdate(); } function mergeChunkListUpdates(updateA, updateB) { let chunks; if (updateA.chunks != null) { if (updateB.chunks == null) { chunks = updateA.chunks; } else { chunks = mergeChunkListChunks(updateA.chunks, updateB.chunks); } } else if (updateB.chunks != null) { chunks = updateB.chunks; } let merged; if (updateA.merged != null) { if (updateB.merged == null) { merged = updateA.merged; } else { // Since `merged` is an array of updates, we need to merge them all into // one, consistent update. // Since there can only be `EcmascriptMergeUpdates` in the array, there is // no need to key on the `type` field. let update = updateA.merged[0]; for(let i = 1; i < updateA.merged.length; i++){ update = mergeChunkListEcmascriptMergedUpdates(update, updateA.merged[i]); } for(let i = 0; i < updateB.merged.length; i++){ update = mergeChunkListEcmascriptMergedUpdates(update, updateB.merged[i]); } merged = [ update ]; } } else if (updateB.merged != null) { merged = updateB.merged; } return { type: 'ChunkListUpdate', chunks, merged }; } function mergeChunkListChunks(chunksA, chunksB) { const chunks = {}; for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){ const chunkUpdateB = chunksB[chunkPath]; if (chunkUpdateB != null) { const mergedUpdate = mergeChunkUpdates(chunkUpdateA, chunkUpdateB); if (mergedUpdate != null) { chunks[chunkPath] = mergedUpdate; } } else { chunks[chunkPath] = chunkUpdateA; } } for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){ if (chunks[chunkPath] == null) { chunks[chunkPath] = chunkUpdateB; } } return chunks; } function mergeChunkUpdates(updateA, updateB) { if (updateA.type === 'added' && updateB.type === 'deleted' || updateA.type === 'deleted' && updateB.type === 'added') { return undefined; } if (updateA.type === 'partial') { invariant(updateA.instruction, 'Partial updates are unsupported'); } if (updateB.type === 'partial') { invariant(updateB.instruction, 'Partial updates are unsupported'); } return undefined; } function mergeChunkListEcmascriptMergedUpdates(mergedA, mergedB) { const entries = mergeEcmascriptChunkEntries(mergedA.entries, mergedB.entries); const chunks = mergeEcmascriptChunksUpdates(mergedA.chunks, mergedB.chunks); return { type: 'EcmascriptMergedUpdate', entries, chunks }; } function mergeEcmascriptChunkEntries(entriesA, entriesB) { return { ...entriesA, ...entriesB }; } function mergeEcmascriptChunksUpdates(chunksA, chunksB) { if (chunksA == null) { return chunksB; } if (chunksB == null) { return chunksA; } const chunks = {}; for (const [chunkPath, chunkUpdateA] of Object.entries(chunksA)){ const chunkUpdateB = chunksB[chunkPath]; if (chunkUpdateB != null) { const mergedUpdate = mergeEcmascriptChunkUpdates(chunkUpdateA, chunkUpdateB); if (mergedUpdate != null) { chunks[chunkPath] = mergedUpdate; } } else { chunks[chunkPath] = chunkUpdateA; } } for (const [chunkPath, chunkUpdateB] of Object.entries(chunksB)){ if (chunks[chunkPath] == null) { chunks[chunkPath] = chunkUpdateB; } } if (Object.keys(chunks).length === 0) { return undefined; } return chunks; } function mergeEcmascriptChunkUpdates(updateA, updateB) { if (updateA.type === 'added' && updateB.type === 'deleted') { // These two completely cancel each other out. return undefined; } if (updateA.type === 'deleted' && updateB.type === 'added') { const added = []; const deleted = []; var _updateA_modules; const deletedModules = new Set((_updateA_modules = updateA.modules) !== null && _updateA_modules !== void 0 ? _updateA_modules : []); var _updateB_modules; const addedModules = new Set((_updateB_modules = updateB.modules) !== null && _updateB_modules !== void 0 ? _updateB_modules : []); for (const moduleId of addedModules){ if (!deletedModules.has(moduleId)) { added.push(moduleId); } } for (const moduleId of deletedModules){ if (!addedModules.has(moduleId)) { deleted.push(moduleId); } } if (added.length === 0 && deleted.length === 0) { return undefined; } return { type: 'partial', added, deleted }; } if (updateA.type === 'partial' && updateB.type === 'partial') { var _updateA_added, _updateB_added; const added = new Set([ ...(_updateA_added = updateA.added) !== null && _updateA_added !== void 0 ? _updateA_added : [], ...(_updateB_added = updateB.added) !== null && _updateB_added !== void 0 ? _updateB_added : [] ]); var _updateA_deleted, _updateB_deleted; const deleted = new Set([ ...(_updateA_deleted = updateA.deleted) !== null && _updateA_deleted !== void 0 ? _updateA_deleted : [], ...(_updateB_deleted = updateB.deleted) !== null && _updateB_deleted !== void 0 ? _updateB_deleted : [] ]); if (updateB.added != null) { for (const moduleId of updateB.added){ deleted.delete(moduleId); } } if (updateB.deleted != null) { for (const moduleId of updateB.deleted){ added.delete(moduleId); } } return { type: 'partial', added: [ ...added ], deleted: [ ...deleted ] }; } if (updateA.type === 'added' && updateB.type === 'partial') { var _updateA_modules1, _updateB_added1; const modules = new Set([ ...(_updateA_modules1 = updateA.modules) !== null && _updateA_modules1 !== void 0 ? _updateA_modules1 : [], ...(_updateB_added1 = updateB.added) !== null && _updateB_added1 !== void 0 ? _updateB_added1 : [] ]); var _updateB_deleted1; for (const moduleId of (_updateB_deleted1 = updateB.deleted) !== null && _updateB_deleted1 !== void 0 ? _updateB_deleted1 : []){ modules.delete(moduleId); } return { type: 'added', modules: [ ...modules ] }; } if (updateA.type === 'partial' && updateB.type === 'deleted') { var _updateB_modules1; // We could eagerly return `updateB` here, but this would potentially be // incorrect if `updateA` has added modules. const modules = new Set((_updateB_modules1 = updateB.modules) !== null && _updateB_modules1 !== void 0 ? _updateB_modules1 : []); if (updateA.added != null) { for (const moduleId of updateA.added){ modules.delete(moduleId); } } return { type: 'deleted', modules: [ ...modules ] }; } // Any other update combination is invalid. return undefined; } function invariant(_, message) { throw new Error("Invariant: ".concat(message)); } const CRITICAL = [ 'bug', 'error', 'fatal' ]; function compareByList(list, a, b) { const aI = list.indexOf(a) + 1 || list.length; const bI = list.indexOf(b) + 1 || list.length; return aI - bI; } const chunksWithIssues = new Map(); function emitIssues() { const issues = []; const deduplicationSet = new Set(); for (const [_, chunkIssues] of chunksWithIssues){ for (const chunkIssue of chunkIssues){ if (deduplicationSet.has(chunkIssue.formatted)) continue; issues.push(chunkIssue); deduplicationSet.add(chunkIssue.formatted); } } sortIssues(issues); hooks.issues(issues); } function handleIssues(msg) { const key = resourceKey(msg.resource); let hasCriticalIssues = false; for (const issue of msg.issues){ if (CRITICAL.includes(issue.severity)) { hasCriticalIssues = true; } } if (msg.issues.length > 0) { chunksWithIssues.set(key, msg.issues); } else if (chunksWithIssues.has(key)) { chunksWithIssues.delete(key); } emitIssues(); return hasCriticalIssues; } const SEVERITY_ORDER = [ 'bug', 'fatal', 'error', 'warning', 'info', 'log' ]; const CATEGORY_ORDER = [ 'parse', 'resolve', 'code generation', 'rendering', 'typescript', 'other' ]; function sortIssues(issues) { issues.sort((a, b)=>{ const first = compareByList(SEVERITY_ORDER, a.severity, b.severity); if (first !== 0) return first; return compareByList(CATEGORY_ORDER, a.category, b.category); }); } const hooks = { beforeRefresh: ()=>{}, refresh: ()=>{}, buildOk: ()=>{}, issues: (_issues)=>{} }; function setHooks(newHooks) { Object.assign(hooks, newHooks); } function handleSocketMessage(msg) { sortIssues(msg.issues); handleIssues(msg); switch(msg.type){ case 'issues': break; case 'partial': // aggregate updates aggregateUpdates(msg); break; default: // run single update const runHooks = chunkListsWithPendingUpdates.size === 0; if (runHooks) hooks.beforeRefresh(); triggerUpdate(msg); if (runHooks) finalizeUpdate(); break; } } function finalizeUpdate() { hooks.refresh(); hooks.buildOk(); // This is used by the Next.js integration test suite to notify it when HMR // updates have been completed. // TODO: Only run this in test environments (gate by `process.env.__NEXT_TEST_MODE`) if (globalThis.__NEXT_HMR_CB) { globalThis.__NEXT_HMR_CB(); globalThis.__NEXT_HMR_CB = null; } } function subscribeToChunkUpdate(chunkListPath, sendMessage, callback) { return subscribeToUpdate({ path: chunkListPath }, sendMessage, callback); } function subscribeToUpdate(resource, sendMessage, callback) { const key = resourceKey(resource); let callbackSet; const existingCallbackSet = updateCallbackSets.get(key); if (!existingCallbackSet) { callbackSet = { callbacks: new Set([ callback ]), unsubscribe: subscribeToUpdates(sendMessage, resource) }; updateCallbackSets.set(key, callbackSet); } else { existingCallbackSet.callbacks.add(callback); callbackSet = existingCallbackSet; } return ()=>{ callbackSet.callbacks.delete(callback); if (callbackSet.callbacks.size === 0) { callbackSet.unsubscribe(); updateCallbackSets.delete(key); } }; } function triggerUpdate(msg) { const key = resourceKey(msg.resource); const callbackSet = updateCallbackSets.get(key); if (!callbackSet) { return; } for (const callback of callbackSet.callbacks){ callback(msg); } if (msg.type === 'notFound') { // This indicates that the resource which we subscribed to either does not exist or // has been deleted. In either case, we should clear all update callbacks, so if a // new subscription is created for the same resource, it will send a new "subscribe" // message to the server. // No need to send an "unsubscribe" message to the server, it will have already // dropped the update stream before sending the "notFound" message. updateCallbackSets.delete(key); } } }), "[project]/src/lib/utils.ts [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "cn", ()=>cn ]); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/clsx/dist/clsx.mjs [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/tailwind-merge/dist/bundle-mjs.mjs [client] (ecmascript)"); ; ; function cn() { for(var _len = arguments.length, inputs = new Array(_len), _key = 0; _key < _len; _key++){ inputs[_key] = arguments[_key]; } return (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$tailwind$2d$merge$2f$dist$2f$bundle$2d$mjs$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["twMerge"])((0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$clsx$2f$dist$2f$clsx$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["clsx"])(inputs)); } if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/src/components/ui/toast.tsx [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "Toast", ()=>Toast, "ToastAction", ()=>ToastAction, "ToastClose", ()=>ToastClose, "ToastDescription", ()=>ToastDescription, "ToastProvider", ()=>ToastProvider, "ToastTitle", ()=>ToastTitle, "ToastViewport", ()=>ToastViewport ]); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/react/jsx-dev-runtime.js [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/react/index.js [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/@radix-ui/react-toast/dist/index.mjs [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/class-variance-authority/dist/index.mjs [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__ = __turbopack_context__.i("[project]/node_modules/lucide-react/dist/esm/icons/x.js [client] (ecmascript) "); var __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/src/lib/utils.ts [client] (ecmascript)"); ; ; ; ; ; ; const ToastProvider = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Provider"]; const ToastViewport = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c = (param, ref)=>{ let { className, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Viewport"], { "data-sg-el": "src/components/ui/toast.tsx:14:2", "data-sg-name": "ToastPrimitives.Viewport", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]", className), ...props }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 14, columnNumber: 3 }, ("TURBOPACK compile-time value", void 0)); }); _c1 = ToastViewport; ToastViewport.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Viewport"].displayName; const toastVariants = (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$class$2d$variance$2d$authority$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["cva"])("group pointer-events-auto relative flex w-full items-center justify-between space-x-2 overflow-hidden rounded-md border p-4 pr-6 shadow-xs transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full", { variants: { variant: { default: "border bg-background text-foreground", destructive: "destructive group border-destructive bg-destructive text-destructive-foreground" } }, defaultVariants: { variant: "default" } }); const Toast = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c2 = (param, ref)=>{ let { className, variant, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Root"], { "data-sg-el": "src/components/ui/toast.tsx:47:4", "data-sg-name": "ToastPrimitives.Root", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])(toastVariants({ variant }), className), ...props }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 47, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)); }); _c3 = Toast; Toast.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Root"].displayName; const ToastAction = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c4 = (param, ref)=>{ let { className, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Action"], { "data-sg-el": "src/components/ui/toast.tsx:60:2", "data-sg-name": "ToastPrimitives.Action", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium transition-colors hover:bg-secondary focus:outline-none focus:ring-1 focus:ring-ring disabled:pointer-events-none disabled:opacity-50 group-[.destructive]:border-muted/40 group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground group-[.destructive]:focus:ring-destructive", className), ...props }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 60, columnNumber: 3 }, ("TURBOPACK compile-time value", void 0)); }); _c5 = ToastAction; ToastAction.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Action"].displayName; const ToastClose = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c6 = (param, ref)=>{ let { className, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Close"], { "data-sg-el": "src/components/ui/toast.tsx:75:2", "data-sg-name": "ToastPrimitives.Close", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])("absolute right-1 top-1 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none focus:ring-1 group-hover:opacity-100 group-[.destructive]:text-red-300 group-[.destructive]:hover:text-red-50 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600", className), "toast-close": "", ...props, children: /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$lucide$2d$react$2f$dist$2f$esm$2f$icons$2f$x$2e$js__$5b$client$5d$__$28$ecmascript$29$__$3c$export__default__as__X$3e$__["X"], { "data-sg-el": "src/components/ui/toast.tsx:84:4", "data-sg-name": "X", className: "h-4 w-4" }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 84, columnNumber: 5 }, ("TURBOPACK compile-time value", void 0)) }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 75, columnNumber: 3 }, ("TURBOPACK compile-time value", void 0)); }); _c7 = ToastClose; ToastClose.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Close"].displayName; const ToastTitle = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c8 = (param, ref)=>{ let { className, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Title"], { "data-sg-el": "src/components/ui/toast.tsx:93:2", "data-sg-name": "ToastPrimitives.Title", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])("text-sm font-semibold [&+div]:text-xs", className), ...props }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 93, columnNumber: 3 }, ("TURBOPACK compile-time value", void 0)); }); _c9 = ToastTitle; ToastTitle.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Title"].displayName; const ToastDescription = /*#__PURE__*/ __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["forwardRef"](_c10 = (param, ref)=>{ let { className, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Description"], { "data-sg-el": "src/components/ui/toast.tsx:105:2", "data-sg-name": "ToastPrimitives.Description", ref: ref, className: (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$lib$2f$utils$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["cn"])("text-sm opacity-90", className), ...props }, void 0, false, { fileName: "[project]/src/components/ui/toast.tsx", lineNumber: 105, columnNumber: 3 }, ("TURBOPACK compile-time value", void 0)); }); _c11 = ToastDescription; ToastDescription.displayName = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f40$radix$2d$ui$2f$react$2d$toast$2f$dist$2f$index$2e$mjs__$5b$client$5d$__$28$ecmascript$29$__["Description"].displayName; ; var _c, _c1, _c2, _c3, _c4, _c5, _c6, _c7, _c8, _c9, _c10, _c11; __turbopack_context__.k.register(_c, "ToastViewport$React.forwardRef"); __turbopack_context__.k.register(_c1, "ToastViewport"); __turbopack_context__.k.register(_c2, "Toast$React.forwardRef"); __turbopack_context__.k.register(_c3, "Toast"); __turbopack_context__.k.register(_c4, "ToastAction$React.forwardRef"); __turbopack_context__.k.register(_c5, "ToastAction"); __turbopack_context__.k.register(_c6, "ToastClose$React.forwardRef"); __turbopack_context__.k.register(_c7, "ToastClose"); __turbopack_context__.k.register(_c8, "ToastTitle$React.forwardRef"); __turbopack_context__.k.register(_c9, "ToastTitle"); __turbopack_context__.k.register(_c10, "ToastDescription$React.forwardRef"); __turbopack_context__.k.register(_c11, "ToastDescription"); if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/src/hooks/use-toast.ts [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "reducer", ()=>reducer, "toast", ()=>toast, "useToast", ()=>useToast ]); // Inspired by react-hot-toast library var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/react/index.js [client] (ecmascript)"); var _s = __turbopack_context__.k.signature(); "use client"; ; const TOAST_LIMIT = 1; const TOAST_REMOVE_DELAY = 1000000; const actionTypes = { ADD_TOAST: "ADD_TOAST", UPDATE_TOAST: "UPDATE_TOAST", DISMISS_TOAST: "DISMISS_TOAST", REMOVE_TOAST: "REMOVE_TOAST" }; let count = 0; function genId() { count = (count + 1) % Number.MAX_SAFE_INTEGER; return count.toString(); } const toastTimeouts = new Map(); const addToRemoveQueue = (toastId)=>{ if (toastTimeouts.has(toastId)) { return; } const timeout = setTimeout(()=>{ toastTimeouts.delete(toastId); dispatch({ type: actionTypes.REMOVE_TOAST, toastId: toastId }); }, TOAST_REMOVE_DELAY); toastTimeouts.set(toastId, timeout); }; const reducer = (state, action)=>{ switch(action.type){ case actionTypes.ADD_TOAST: return { ...state, toasts: [ action.toast, ...state.toasts ].slice(0, TOAST_LIMIT) }; case actionTypes.UPDATE_TOAST: return { ...state, toasts: state.toasts.map((t)=>t.id === action.toast.id ? { ...t, ...action.toast } : t) }; case actionTypes.DISMISS_TOAST: { const { toastId } = action; // ! Side effects ! - This could be extracted into a dismissToast() action, // but I'll keep it here for simplicity if (toastId) { addToRemoveQueue(toastId); } else { state.toasts.forEach((toast)=>{ addToRemoveQueue(toast.id); }); } return { ...state, toasts: state.toasts.map((t)=>t.id === toastId || toastId === undefined ? { ...t, open: false } : t) }; } case actionTypes.REMOVE_TOAST: if (action.toastId === undefined) { return { ...state, toasts: [] }; } return { ...state, toasts: state.toasts.filter((t)=>t.id !== action.toastId) }; } }; const listeners = []; let memoryState = { toasts: [] }; function dispatch(action) { memoryState = reducer(memoryState, action); listeners.forEach((listener)=>{ listener(memoryState); }); } function toast(param) { let { ...props } = param; const id = genId(); const update = (props)=>dispatch({ type: actionTypes.UPDATE_TOAST, toast: { ...props, id } }); const dismiss = ()=>dispatch({ type: actionTypes.DISMISS_TOAST, toastId: id }); dispatch({ type: actionTypes.ADD_TOAST, toast: { ...props, id, open: true, onOpenChange: (open)=>{ if (!open) dismiss(); } } }); return { id: id, dismiss, update }; } function useToast() { _s(); const [state, setState] = __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["useState"](memoryState); __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$index$2e$js__$5b$client$5d$__$28$ecmascript$29$__["useEffect"]({ "useToast.useEffect": ()=>{ listeners.push(setState); return ({ "useToast.useEffect": ()=>{ const index = listeners.indexOf(setState); if (index > -1) { listeners.splice(index, 1); } } })["useToast.useEffect"]; } }["useToast.useEffect"], [ state ]); return { ...state, toast, dismiss: (toastId)=>dispatch({ type: actionTypes.DISMISS_TOAST, toastId }) }; } _s(useToast, "SPWE98mLGnlsnNfIwu/IAKTSZtk="); ; if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/src/components/ui/toaster.tsx [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "Toaster", ()=>Toaster ]); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/react/jsx-dev-runtime.js [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/src/components/ui/toast.tsx [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$hooks$2f$use$2d$toast$2e$ts__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/src/hooks/use-toast.ts [client] (ecmascript)"); ; var _s = __turbopack_context__.k.signature(); ; ; function Toaster() { _s(); const { toasts } = (0, __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$hooks$2f$use$2d$toast$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["useToast"])(); return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["ToastProvider"], { "data-sg-el": "src/components/ui/toaster.tsx:15:4", "data-sg-name": "ToastProvider", children: [ toasts.map(function(param) { let { id, title, description, action, ...props } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["Toast"], { "data-sg-el": "src/components/ui/toaster.tsx:18:10", "data-sg-name": "Toast", ...props, children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])("div", { "data-sg-el": "src/components/ui/toaster.tsx:19:12", "data-sg-name": "div", className: "grid gap-1", children: [ title && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["ToastTitle"], { "data-sg-el": "src/components/ui/toaster.tsx:20:24", "data-sg-name": "ToastTitle", children: title }, void 0, false, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 20, columnNumber: 25 }, this), description && /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["ToastDescription"], { "data-sg-el": "src/components/ui/toaster.tsx:22:16", "data-sg-name": "ToastDescription", children: description }, void 0, false, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 22, columnNumber: 17 }, this) ] }, void 0, true, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 19, columnNumber: 13 }, this), action, /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["ToastClose"], { "data-sg-el": "src/components/ui/toaster.tsx:26:12", "data-sg-name": "ToastClose" }, void 0, false, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 26, columnNumber: 13 }, this) ] }, id, true, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 18, columnNumber: 11 }, this); }), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toast$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["ToastViewport"], { "data-sg-el": "src/components/ui/toaster.tsx:30:6", "data-sg-name": "ToastViewport" }, void 0, false, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 30, columnNumber: 7 }, this) ] }, void 0, true, { fileName: "[project]/src/components/ui/toaster.tsx", lineNumber: 15, columnNumber: 5 }, this); } _s(Toaster, "1YTCnXrq2qRowe0H/LBWLjtXoYc=", false, function() { return [ __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$hooks$2f$use$2d$toast$2e$ts__$5b$client$5d$__$28$ecmascript$29$__["useToast"] ]; }); _c = Toaster; var _c; __turbopack_context__.k.register(_c, "Toaster"); if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[project]/src/pages/_app.tsx [client] (ecmascript)", ((__turbopack_context__) => { "use strict"; __turbopack_context__.s([ "default", ()=>App ]); var __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/node_modules/react/jsx-dev-runtime.js [client] (ecmascript)"); var __TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toaster$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__ = __turbopack_context__.i("[project]/src/components/ui/toaster.tsx [client] (ecmascript)"); ; ; ; function App(param) { let { Component, pageProps } = param; return /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["Fragment"], { children: [ /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(Component, { "data-sg-el": "src/pages/_app.tsx:8:6", "data-sg-name": "Component", ...pageProps }, void 0, false, { fileName: "[project]/src/pages/_app.tsx", lineNumber: 8, columnNumber: 7 }, this), /*#__PURE__*/ (0, __TURBOPACK__imported__module__$5b$project$5d2f$node_modules$2f$react$2f$jsx$2d$dev$2d$runtime$2e$js__$5b$client$5d$__$28$ecmascript$29$__["jsxDEV"])(__TURBOPACK__imported__module__$5b$project$5d2f$src$2f$components$2f$ui$2f$toaster$2e$tsx__$5b$client$5d$__$28$ecmascript$29$__["Toaster"], { "data-sg-el": "src/pages/_app.tsx:9:6", "data-sg-name": "Toaster" }, void 0, false, { fileName: "[project]/src/pages/_app.tsx", lineNumber: 9, columnNumber: 7 }, this) ] }, void 0, true); } _c = App; var _c; __turbopack_context__.k.register(_c, "App"); if (typeof globalThis.$RefreshHelpers$ === 'object' && globalThis.$RefreshHelpers !== null) { __turbopack_context__.k.registerExports(__turbopack_context__.m, globalThis.$RefreshHelpers$); } }), "[next]/entry/page-loader.ts { PAGE => \"[project]/src/pages/_app.tsx [client] (ecmascript)\" } [client] (ecmascript)", ((__turbopack_context__, module, exports) => { const PAGE_PATH = "/_app"; (window.__NEXT_P = window.__NEXT_P || []).push([ PAGE_PATH, ()=>{ return __turbopack_context__.r("[project]/src/pages/_app.tsx [client] (ecmascript)"); } ]); // @ts-expect-error module.hot exists if (module.hot) { // @ts-expect-error module.hot exists module.hot.dispose(function() { window.__NEXT_P.push([ PAGE_PATH ]); }); } }), "[hmr-entry]/hmr-entry.js { ENTRY => \"[project]/src/pages/_app\" }", ((__turbopack_context__) => { "use strict"; __turbopack_context__.r("[next]/entry/page-loader.ts { PAGE => \"[project]/src/pages/_app.tsx [client] (ecmascript)\" } [client] (ecmascript)"); }), ]); //# sourceMappingURL=%5Broot-of-the-server%5D__73c39db8._.js.map